On-demand routing protocols, for example, the Ad Hoc On-demand Distance Vector (AODV) routing protocol defined by the MANET working group in IETF, use a Route Request and Route Reply mechanism to establish routes between two nodes in wireless mesh/ad hoc networks. When a source node wants to send data packets/frames to a destination node, the source node discovers the route to the destination by flooding a Route Request (RREQ) message over the network if the source node does not have and needs a valid route to the destination node. A reverse route back to the source is created by the nodes in the network as they receive and forward the RREQ. When a node receives a RREQ, the receiving node replies to this request by generating a Route Reply (RREP) message if either: (1) the receiving node is itself the destination, or (2) the receiving node has a valid route to the destination and the “destination only” (‘D’) flag in the RREQ is NOT set. The RREP is forwarded in unicast to the source node through the established reverse route and a forward route to the destination in the intermediate nodes and eventually in the source node is thus created. The established routes expire if they are not used within a given route lifetime.
In the AODV, the “destination only” flag of the RREQ message is set by the source node and is not changed by the intermediate nodes. If the “destination only” flag is set in the RREQ by the source node, the intermediate node does not respond to the RREQ with a RREP message even if the intermediate/receiving node has a valid route to the destination node. It forwards/re-floods the RREQ to its neighbors. Only the destination node responds to this RREQ. In this mode of operation, the route discovery latency may be large although the up-to-date best route between the source node and the destination node is eventually discovered in the process. Low latency is very important for real-time applications such as voice and video communications.
If the “destination only” flag is not set by the source node, then any intermediate node with a valid route to the destination node responds to the RREQ with an RREP message. The RREP message is sent back to the source node in unicast and establishes a forward route to the destination node. If the “Gratuitous RREP” (‘G’) flag in the RREQ is set, this intermediate node also unicasts a gratuitous RREP to the destination node so that the destination node learns of routes to the source node. However, in the AODV, if an intermediate node does generate a RREP (because the intermediate node has a valid route to the destination node), then the intermediate node discards the RREQ. With this approach, the source node can discover a route to the destination node more quickly because the source node does not have to wait for the destination node's reply. However, the best end-to-end route may not be discovered because the route cached in the intermediate node may not be the best route to the destination node. The metrics may have changed due to the dynamics of wireless networks making the cached route less desirable. That is, because of changes in the network topology, routing metrics, etc. it is possible that the route cached in the intermediate node may become worse or that other routes with a better end-to-end metric may become available making other routes more desirable.
The problem solved by the present invention is how to use the RREQ and RREP mechanism to quickly discover the best route between a source node and one or more destination nodes.